BOS & ChoCh Market StructureBOS/ChoCh Market Structure Indicator
This indicator identifies key market structure shifts using Break of Structure (BOS) and Change of Character (ChoCh) signals based on pivot point analysis.
Concept
Break of Structure (BOS) occurs when price breaks through a significant pivot level in the direction of the current trend, signaling trend continuation. A bullish BOS happens when price breaks above a pivot high while in an uptrend, while a bearish BOS occurs when price breaks below a pivot low during a downtrend.
Change of Character (ChoCh) signals a potential trend reversal. It occurs when price breaks against the prevailing trend - breaking above a pivot high while in a downtrend, or breaking below a pivot low while in an uptrend. This indicates the market structure is shifting.
How It Works
The indicator automatically detects swing highs and lows using configurable pivot strength. When price breaks these levels, it plots:
Color-coded labels (cyan for bullish breaks, red for bearish breaks)
Small horizontal lines marking the exact breakout level
Extended lines from pivot points showing key support/resistance levels
Settings
Pivot Strength - Number of candles on each side required to confirm a swing high/low (default: 5). Higher values identify more significant pivots but produce fewer signals.
Breakout Confirmation - Choose whether breakouts require a candle close beyond the level ("Close") or just a wick touch ("Wick").
Show BOS / Show ChoCh - Toggle visibility of Break of Structure and Change of Character signals independently.
Colors - Customize the colors for bullish (cyan) and bearish (red) signals.
Perfect for swing traders and market structure analysis.
Cari skrip untuk "market structure"
Smart Structure Breaks & Order BlocksOverview (What it does)
The indicator “Smart Structure Breaks & Order Blocks” detects market structure using swing highs and lows, identifies Break of Structure (BOS) events, and automatically draws order blocks (OBs) from the origin candle. These zones extend to the right and change color/outline when mitigated or invalidated. By formalizing and automating part of discretionary analysis, it provides consistent zone recognition.
Main Components
Swing Detection: ta.pivothigh/ta.pivotlow identify confirmed swing points.
BOS Detection: Determines if the recent swing high/low is broken by close (strict mode) or crossover.
OB Creation: After a BOS, the opposite candle (bearish for bullish BOS, bullish for bearish BOS) is used to generate an order block zone.
Zone Management: Limits the number of zones, extends them to the right, and tracks tagged (mitigated) or invalidated states.
Input Parameters
Left/Right Pivot (default 6/6): Number of bars required on each side to confirm a swing. Higher values = smoother swings.
Max Zones (default 4): Maximum zones stored per direction (bull/bear). Oldest zones are overwritten.
Zone Confirmation Lookback (default 3): Ensures OB origin candle validity by checking recent highs/lows.
Show Swing Points (default ON): Displays triangles on swing highs/lows.
Require close for BOS? (default ON): Strict BOS (close required) vs loose BOS (line crossover).
Use candle body for zones (default OFF): Zones drawn from candle body (ON) or wick (OFF).
Signal Definition & Logic
Swing Updates: Latest confirmed pivots update lastHighLevel / lastLowLevel.
BOS (Break of Structure):
Bullish – close breaks last swing high.
Bearish – close breaks last swing low.
Only one valid BOS per swing (avoids duplicates).
OB Detection:
Bullish BOS → previous bearish candle with lowest low forms the OB.
Bearish BOS → previous bullish candle with highest high forms the OB.
Zones: Bull = green, Bear = red, semi-transparent, extended to the right.
Zone States:
Mitigated: Price touches the zone → border highlighted.
Invalidated:
Bull zone → close below → turns red.
Bear zone → close above → turns green.
Chart Appearance
Swing High: red triangle above bar
Swing Low: green triangle below bar
Bull OB: green zone (border highlighted on touch)
Bear OB: red zone (border highlighted on touch)
Invalid Zones: Bull zones turn reddish, Bear zones turn greenish
Practical Use (Trading Assistance)
Trend Following Entries: Buy pullbacks into green OBs in uptrends, sell rallies into red OBs in downtrends.
Focus on First Touch: First mitigation after BOS often has higher reaction probability.
Confluence: Combine with higher timeframe trend, volume, session levels, key price levels (previous highs/lows, VWAP, etc.).
Stops/Targets:
Bull – stop below zone, partial take profit at swing high or resistance.
Bear – stop above zone, partial take profit at swing low or support.
Parameter Tuning (per market/timeframe)
Pivot (6/6 → 4/4/8/8): Lower for scalping (3–5), medium for day trading (5–8), higher for swing trading (8–14). Increase to reduce noise.
Strict Break: ON to reduce false breaks in ranging markets; OFF for earlier signals.
Body Zones: ON for assets with long wicks, OFF for cleaner OBs in liquid instruments.
Zone Confirmation (default 3): Increase for stricter OB origin, fewer zones.
Max Zones (default 4 → 6–10): Increase for higher volatility, decrease to avoid clutter.
Strengths
Standardizes BOS and OB detection that is usually subjective.
Tracks mitigation and invalidation automatically.
Adaptable: allows body/wick zone switching for different instruments.
Limitations
Pivot-based: Signals appear only after pivots confirm (slight lag).
Zones reflect past balance: Can fail after new events (news, earnings, macro data).
Range-heavy markets: More false BOS; consider stricter settings.
Backtesting: This script is for drawing/visual aid; trading rules must be defined separately.
Workflow Example
Identify higher timeframe trend (4H/Daily).
On lower TF (15–60m), wait for BOS and new OB.
Enter on first mitigation with confirmation candle.
Stop beyond zone; targets based on R multiples and swing points.
FAQ
Q: Why are zones invalidated quickly?
A: Flow reversal after BOS. Adjust pivots higher, enable Strict mode, or switch to Body zones to reduce noise.
Q: What does “tagged” mean?
A: Price touched the zone once = mitigated. Implies some orders in that zone may have been filled.
Q: Body or Wick zones?
A: Wick zones are fine in clean markets. For volatile pairs with long wicks, body zones provide more realistic areas.
Customization Tips (Code perspective)
Zone storage: Currently ring buffer ((idx+1) % zoneLimit). Could prioritize keeping unmitigated zones.
Automated testing: Add strategy.entry/exit for rule-based backtests.
Multi-timeframe: Use request.security() for higher timeframe swings/BOS.
Visualization: Add labels for BOS bars, tag zones with IDs, count touches.
Summary
This indicator formalizes the cycle Swing → BOS → OB creation → Mitigation/Invalidation, providing consistent structure analysis and zone tracking. By tuning sensitivity and strictness, and combining with higher timeframe context, it enhances pullback/continuation trading setups. Always combine with proper risk management.
Order-Flow Market StructureOrder-Flow Market Structure by The_Forex_Steward
A precision tool for visualizing internal shifts, swing structure, BOS events, Fibonacci levels, and multi-timeframe alerts.
What It Does
The Order-Flow Market Structure indicator intelligently tracks and visualizes price structure using higher timeframe candles. It automatically detects:
• Internal bullish and bearish structure shifts
• Swing highs and lows (HH, HL, LH, LL)
• Break of Structure (BoS) confirmations
• Fibonacci retracement levels from recent swing moves
• Real-time alerts across LTF, MTF, and HTF modes
It’s a complete tool for traders who follow Smart Money Concepts, ICT, or institutional price action strategies.
How It Works
• You select a Higher Timeframe (HTF) to set the structural context
• Internal shifts are identified using HTF candle closes
• The indicator scans for swing highs/lows after each internal shift
• Breaks of previous swing points confirm BoS and plot horizontal lines
• Zigzag lines visually connect structural points (swings and BoS)
• Fibonacci levels are drawn between the latest swings
• Alerts can be configured for structure shifts, BoS events, and fib level breaks
How to Use It
Set your preferred HTF (e.g., 1H while trading on 5-minute)
Enable Fibonacci levels to visualize retracement zones
Watch for:
• Bullish internal shifts → HL to HH
• Bearish internal shifts → LH to LL
• BOS → Breakout confirmation
Enable alerts to catch structural events in real-time
Adjust the "Safe History Offset" if working with long lookbacks or volatile assets
Who It's For
• Traders using Smart Money, ICT, or market structure-based systems
• Scalpers, day traders, and swing traders
• Anyone needing precise structural insight across multiple timeframes
Features
• BoS detection with custom line styles and width
• HH, HL, LH, LL label plotting
• Optional Fibonacci retracement zones
• Custom alerts for swing shifts and fib level breaks
• LTF, MTF, and HTF alert modes
Stay aligned with structure, trade with precision, and get alerted to key shifts in real time.
Rally/Drop Market Structure (Multi-Timeframe)Rally/Drop Market Structure
Supply and Demand Zones from Bullish/Bearish Breaks
Overview:
The Rally/Drop Market Structure indicator is a powerful price action tool that identifies key structural turning points in the market by detecting bullish and bearish breaks . After each confirmed break, it plots either a demand zone (following a bullish break or rally) or a supply zone (following a bearish break or drop). These zones represent institutional footprints — areas where price is likely to react due to imbalance or unfilled orders.
The indicator is based on synthetic higher timeframe (HTF) candles to provide a more stable and smoothed structural map, improving clarity and signal quality over raw candles.
How It Works:
- A bullish break is defined when price makes a higher high and a higher low (or closes above the previous high depending on your selected mode).
- A bearish break is defined when price makes a lower high and a lower low (or closes below the previous low).
- After a bullish break, the indicator plots a demand zone based on the low and high of the most recent bearish candle — representing where demand stepped in.
- After a bearish break, the indicator plots a supply zone from the most recent bullish candle — indicating where supply took control.
- Optional mitigation logic marks zones as mitigated (or deletes them) once price trades into the opposing side.
- Internal shift detection highlights swing highs and lows , labels structural points (HH, HL, LH, LL), and identifies potential liquidity sweeps .
Features:
- Dynamic plotting of rally-based demand zones and drop-based supply zones
- Toggle to use Highs/Lows or Close-based breaks for structure
- Support for LTF, MTF, and HTF analysis (with selectable timeframe)
- Zone mitigation logic with optional automatic cleanup
- Labeling of key swing points: HH , HL , LH , LL , and LS (Liquidity Sweep)
- Zigzag visualization for structure flow
- Alert-ready for internal shifts, BoS, and zone creation
- Separate styling options for BoS lines, internal shift shapes, and zone colors
How to Use:
- Set your desired HTF candle source (e.g., 1H or 4H) depending on your trading style.
- Use Highs/Lows mode for pure price action structure or Close mode for more conservative signals.
- Observe when a bullish break occurs — a demand zone will form where price previously dropped before rallying. Look for long opportunities if price revisits this zone.
- After a bearish break , a supply zone forms where the rally failed — use this to scout short entries on retests.
- Use BoS lines to confirm structure shifts and validate entry triggers or trend direction.
- Monitor mitigated zones for reduced reliability or avoid them completely by enabling automatic deletion.
- Use alerts to stay notified about key changes without watching the chart constantly.
Recommended Strategies:
- Smart money or ICT-style trading : identify institutional footprints and mitigation setups
- Reversal trading : catch price rejecting off unmitigated zones after structure break
- Trend continuation : enter in the direction of internal structure after pullbacks into zones
- Liquidity sweep confirmation : filter out false breaks using HH/LL with LS detection
Tips:
- Combine this indicator with a higher timeframe bias tool (e.g., moving average, higher timeframe market structure).
- For scalping, use tighter HTFs and reduce the zone duration.
- For swing trading, use larger HTFs (1H, 4H, Daily) and increase zone persistence.
Summary:
The Rally/Drop Market Structure indicator gives you an actionable framework for understanding price structure, market intent, and supply/demand imbalances. Whether you're looking for precision entries, trend confirmation, or smart money concepts, this tool helps simplify complex price behavior into clean, usable structure and zones.
SMA Smooth Market Structure (Multi-Timeframe)SMA Market Structure (Multi-Timeframe) is a powerful tool for tracking structural price action, using simple moving averages across any higher timeframe (HTF). It blends Smart Money Concepts with clean swing logic to reveal trend shifts, breaks of structure, and supply/demand zones.
This indicator highlights key structure features:
• Break of Structure (BOS) – Automatic detection of bullish or bearish swing breaks
• Internal Shifts – Early clues that the market is building toward a reversal
• Liquidity Sweeps (LS) – Detects swing failures that may trap traders
• Zigzag Swing Lines – Cleanly connects swing highs and lows
• Dynamic Zones – Demand (green) and supply (red) blocks drawn from engulfing breakouts
How to Use:
• Set your preferred HTF (e.g. 1H on a 15m chart) to view structure in proper context and
adjust SMA to smooth out market structure for directional consistency
• Watch BOS lines and swing labels like HH, HL, LH, LL for directional clarity
• Use the MS (Market Shift) label to identify full reversals after internal shifts + BOS
• Demand/Supply zones mark areas of previous strength and will update or mitigate automatically
• Alerts notify you of every BOS, MS, HH, LL, and LS event — no need to monitor manually
Customization Features:
• Toggle visibility of market shift markers, internal shifts, and zones
• Choose how internal shifts are calculated (High/Low or Open)
• Customize line style, width, and colors for BOS and zigzag lines
• Control zone duration and how mitigated zones behave (fade or delete)
• Built-in safety for Pine Script’s history limits using smart offset caps
Best Use Tips:
• Combine with price action patterns or volume for confirmation
• MS + BOS + zone tap often marks a high-probability reversal setup
• Use it to align lower timeframe entries with higher timeframe structure
For traders who want structure clarity without clutter, this tool is built to keep your chart actionable and adaptive.
Higher Timeframe Market StructureHTF Market Structure – ZigZag, Break of Structure & Supply/Demand
This powerful indicator is designed to identify higher-timeframe market structure using a combination of ZigZag patterns, Break of Structure (BOS) signals, and Supply/Demand zones.
Key Features:
Automatic detection of Higher Highs (HH), Higher Lows (HL), Lower Lows (LL), and Lower Highs (LH)
Internal structure shifts based on Open or High/Low logic
Supply and Demand zones plotted on the chart
Break of Structure (BOS) lines with optional alerts
Mitigation logic to mark or delete invalidated order blocks
Customizable aggregation factor to view higher time frame structure on lower time frames
How to Use:
Focus on market structure and BOS to understand the current trend.
Watch for internal shifts as early signals of potential reversals.
Use ZigZag lines to connect swing highs and lows to visualize market rhythm.
Supply zones (red) and Demand zones (green) are automatically drawn after structure breaks:
Use Demand Zones in Bullish Markets for the highest probability entries.
Use Supply Zones in Bearish Markets to align with the prevailing trend.
Best Practices:
Only use Demand Zones in Bullish markets and Supply Zones in Bearish markets for optimal results.
Look for price action or reversal signals within these zones to refine your entries.
Enable alerts to get notified on:
New order blocks
Internal shifts
BOS events
HH, HL, LL, LH formations
Liquidity sweeps
Customization Options:
Aggregation Factor: Control how many candles are grouped for structure analysis.
Zone Duration: Define how length of plotted zones.
Mitigation Settings: Automatically delete or fade zones after mitigation.
Colors: Choose custom colors for bullish and bearish zones and structure markers.
This tool is ideal for traders who rely on price action, structure, and smart money concepts. Combine it with your own S&D strategy or integrate it with other confluence tools for even better precision.
Internal Market StructureInternal Market Structure Indicator (Based on Bearish/Bullish Candle Patterns)
This custom market structure indicator is designed to help traders identify key shifts in market pressure based on bullish and bearish candle patterns. The indicator tracks consecutive bullish and bearish candles and identifies significant points where the price action suggests a potential reversal or continuation of the current market trend.
Key Features:
1. Bullish & Bearish Candle Recognition: The indicator monitors individual candles to determine if they are bullish (close > open) or bearish (close < open), and uses this information to track price direction over consecutive candles.
2. Consecutive Candle Tracking: It tracks consecutive bullish and bearish candles, giving insight into the strength of the prevailing trend. The number of consecutive candles can be adjusted to refine the analysis based on market conditions.
3. Engulfing Candle Detection: The indicator identifies Bullish and Bearish Engulfing signals when a reversal pattern is detected. These are plotted as triangle shapes on the chart:
-Bullish Engulfing: Indicates a potential reversal or continuation of an upward move, where a bullish candle fully engulfs the previous bearish candle.
-Bearish Engulfing: Indicates a potential reversal or continuation of a downward move, where a bearish candle fully engulfs the previous bullish candle.
4. Internal Shifts: The indicator also tracks Internal Shifts, which occur when the price closes beyond the highest or lowest levels of previous bullish or bearish sequences, signaling a potential trend change:
-Bullish Internal Shift: A shift indicating the market may be turning bullish.
-Bearish Internal Shift: A shift indicating the market may be turning bearish.
5. Alerts: Custom alerts are included to notify traders when any of the above conditions are met:
-Bullish Pressure Change Alert
-Bearish Pressure Change Alert
-Bullish Internal Shift Alert
-Bearish Internal Shift Alert
Plotting:
The indicator visually marks these key price levels with shapes on the chart:
-Green Triangle Up: Bullish Engulfment
-Red Triangle Down: Bearish Engulfment
-Blue Triangle Down: Bearish Internal Shift
-Orange Triangle Up: Bullish Internal Shift
Usage:
This indicator can be used to spot potential reversals, continuation patterns, and shifts in market sentiment. Traders can combine these signals with other technical indicators to form a more robust trading strategy.
By focusing on candle patterns and market structure, this indicator offers a clear, actionable framework for understanding market behavior and making more informed trading decisions.
*NOTE*
The polyline and horizontal trend lines drawn are not included in this indicator, but are there to show how this indicator can be used to illustrate the internal market structure of the given timeframe.
The Curved Market Structure [BigBeluga]Curved Market Structure
The Curved Market Structure indicator offers an innovative twist on traditional market structure tools by using curved lines instead of horizontal ones, enabling faster breakout detection for traders.
🔵Key Features:
Curved Market Structure Levels: The indicator identifies high and low pivots and plots curved lines connecting these points, adapting to market dynamics and providing a more intuitive view of potential breakout zones.
Breakout Detection: Breakouts above or below the curved levels are marked with triangle symbols (▲ or ▼), making it easy to spot critical price movements.
Dynamic Target Levels: After a breakout, the indicator plots three target levels, which serve as potential price objectives. Each target is marked with a number and a star (e.g., 1★) upon being reached.
Customizable Line Length and Angle: Users can adjust the length and angle of the curved lines to fit their trading style and timeframe, making the tool versatile and adaptable.
Market Structure Trend Filtering: To maintain a clean chart, the indicator plots curved levels only from high pivots during uptrends and low pivots during downtrends.
🔵How It Works:
The indicator identifies high and low pivots using user-defined parameters (left and right bars).
Curved lines are drawn from these pivot points, showing the structure of the market and potential breakout zones.
When a breakout occurs, the indicator highlights the direction with triangle symbols and dynamically plots three price targets.
Upon reaching these targets, the level is marked with its respective number and a star, helping traders track price progression effectively.
The lines and targets are adjusted based on market conditions, ensuring real-time relevance and accuracy.
🔵Use Cases:
Spotting key breakout zones to identify entry and exit points more effectively.
Setting dynamic target levels for take-profit or stop-loss planning.
Filtering market noise and maintaining a cleaner chart while analyzing trends.
Enhancing traditional market structure analysis with an intuitive curved visualization.
This indicator is ideal for traders who want a modern, dynamic, and visually appealing way to track market structure and breakouts while maintaining chart clarity.
POC Migration Velocity (POC-MV) [PhenLabs]📊POC Migration Velocity (POC-MV)
Version: PineScript™v6
📌Description
The POC Migration Velocity indicator revolutionizes market structure analysis by tracking the movement, speed, and acceleration of Point of Control (POC) levels in real-time. This tool combines sophisticated volume distribution estimation with velocity calculations to reveal hidden market dynamics that conventional indicators miss.
POC-MV provides traders with unprecedented insight into volume-based price movement patterns, enabling the early identification of continuation and exhaustion signals before they become apparent to the broader market. By measuring how quickly and consistently the POC migrates across price levels, traders gain early warning signals for significant market shifts and can position themselves advantageously.
The indicator employs advanced algorithms to estimate intra-bar volume distribution without requiring lower timeframe data, making it accessible across all chart timeframes while maintaining sophisticated analytical capabilities.
🚀Points of Innovation
Micro-POC calculation using advanced OHLC-based volume distribution estimation
Real-time velocity and acceleration tracking normalized by ATR for cross-market consistency
Persistence scoring system that quantifies directional consistency over multiple periods
Multi-signal detection combining continuation patterns, exhaustion signals, and gap alerts
Dynamic color-coded visualization system with intensity-based feedback
Comprehensive customization options for resolution, periods, and thresholds
🔧Core Components
POC Calculation Engine: Estimates volume distribution within each bar using configurable price bands and sophisticated weighting algorithms
Velocity Measurement System: Tracks the rate of POC movement over customizable lookback periods with ATR normalization
Acceleration Calculator: Measures the rate of change of velocity to identify momentum shifts in POC migration
Persistence Analyzer: Quantifies how consistently POC moves in the same direction using exponential weighting
Signal Detection Framework: Combines trend analysis, velocity thresholds, and persistence requirements for signal generation
Visual Rendering System: Provides dynamic color-coded lines and heat ribbons based on velocity and price-POC relationships
🔥Key Features
Real-time POC calculation with 10-100 configurable price bands for optimal precision
Velocity tracking with customizable lookback periods from 5 to 50 bars
Acceleration measurement for detecting momentum changes in POC movement
Persistence scoring to validate signal strength and filter false signals
Dynamic visual feedback with blue/orange color scheme indicating bullish/bearish conditions
Comprehensive alert system for continuation patterns, exhaustion signals, and POC gaps
Adjustable information table displaying real-time metrics and current signals
Heat ribbon visualization showing price-POC relationship intensity
Multiple threshold settings for customizing signal sensitivity
Export capability for use with separate panel indicators
🎨Visualization
POC Connecting Lines: Color-coded lines showing POC levels with intensity based on velocity magnitude
Heat Ribbon: Dynamic colored ribbon around price showing POC-price basis intensity
Signal Markers: Clear exhaustion top/bottom signals with labeled shapes
Information Table: Real-time display of POC value, velocity, acceleration, basis, persistence, and current signal status
Color Gradients: Blue gradients for bullish conditions, orange gradients for bearish conditions
📖Usage Guidelines
POC Calculation Settings
POC Resolution (Price Bands): Default 20, Range 10-100. Controls the number of price bands used to estimate volume distribution within each bar
Volume Weight Factor: Default 0.7, Range 0.1-1.0. Adjusts the influence of volume in POC calculation
POC Smoothing: Default 3, Range 1-10. EMA smoothing period applied to the calculated POC to reduce noise
Velocity Settings
Velocity Lookback Period: Default 14, Range 5-50. Number of bars used to calculate POC velocity
Acceleration Period: Default 7, Range 3-20. Period for calculating POC acceleration
Velocity Significance Threshold: Default 0.5, Range 0.1-2.0. Minimum normalized velocity for continuation signals
Persistence Settings
Persistence Lookback: Default 5, Range 3-20. Number of bars examined for persistence score calculation
Persistence Threshold: Default 0.7, Range 0.5-1.0. Minimum persistence score required for continuation signals
Visual Settings
Show POC Connecting Lines: Toggle display of colored lines connecting POC levels
Show Heat Ribbon: Toggle display of colored ribbon showing POC-price relationship
Ribbon Transparency: Default 70, Range 0-100. Controls transparency level of heat ribbon
Alert Settings
Enable Continuation Alerts: Toggle alerts for continuation pattern detection
Enable Exhaustion Alerts: Toggle alerts for exhaustion pattern detection
Enable POC Gap Alerts: Toggle alerts for significant POC gaps
Gap Threshold: Default 2.0 ATR, Range 0.5-5.0. Minimum gap size to trigger alerts
✅Best Use Cases
Identifying trend continuation opportunities when POC velocity aligns with price direction
Spotting potential reversal points through exhaustion pattern detection
Confirming breakout validity by monitoring POC gap behavior
Adding volume-based context to traditional technical analysis
Managing position sizing based on POC-price basis strength
⚠️Limitations
POC calculations are estimations based on OHLC data, not true tick-by-tick volume distribution
Effectiveness may vary in low-volume or highly volatile market conditions
Requires complementary analysis tools for complete trading decisions
Signal frequency may be lower in ranging markets compared to trending conditions
Performance optimization needed for very short timeframes below 1-minute
💡What Makes This Unique
Advanced Estimation Algorithm: Sophisticated method for calculating POC without requiring lower timeframe data
Velocity-Based Analysis: Focus on POC movement dynamics rather than static levels
Comprehensive Signal Framework: Integration of continuation, exhaustion, and gap detection in one indicator
Dynamic Visual Feedback: Intensity-based color coding that adapts to market conditions
Persistence Validation: Unique scoring system to filter signals based on directional consistency
🔬How It Works
Volume Distribution Estimation:
Divides each bar into configurable price bands for volume analysis
Applies sophisticated weighting based on OHLC relationships and proximity to close
Identifies the price level with maximum estimated volume as the POC
Velocity and Acceleration Calculation:
Measures POC rate of change over specified lookback periods
Normalizes values using ATR for consistent cross-market performance
Calculates acceleration as the rate of change of velocity
Signal Generation Process:
Combines trend direction analysis using EMA crossovers
Applies velocity and persistence thresholds to filter signals
Generates continuation, exhaustion, and gap alerts based on specific criteria
💡Note:
This indicator provides estimated POC calculations based on available OHLC data and should be used in conjunction with other analysis methods. The velocity-based approach offers unique insights into market structure dynamics but requires proper risk management and complementary analysis for optimal trading decisions.
Fractal Pullback Market StructureFractal Pullback Market Structure
Author: The_Forex_Steward
License: Mozilla Public License 2.0
The Fractal Pullback Market Structure indicator is a sophisticated price action tool designed to visualize internal structure shifts and break-of-structure (BoS) events with high accuracy. It leverages fractal pullback logic to identify market swing points and confirm whether a directional change has occurred.
This indicator detects swing highs and lows based on fractal behavior, drawing zigzag lines to connect these key pivot points. It classifies and labels each structural point as either a Higher High (HH), Higher Low (HL), Lower High (LH), or Lower Low (LL). Internal shifts are marked using triangle symbols on the chart, distinguishing bullish from bearish developments.
Break of Structure events are confirmed when price closes beyond the most recent swing high or low, and a horizontal line is drawn at the breakout level. This helps traders validate when a structural trend change is underway.
Users can configure the lookback period that defines the sensitivity of the pullback detection, as well as a timeframe multiplier to align the logic with higher timeframes such as 4H or Daily. There are visual customization settings for the zigzag lines and BoS markers, including color, width, and style (solid, dotted, or dashed).
Alerts are available for each key structural label—HH, HL, LH, LL—as well as for BoS events. These alerts are filtered through a selectable alert mode that separates signals by timeframe category: Low Timeframe (LTF), Medium Timeframe (MTF), and High Timeframe (HTF). Each mode allows the user to receive alerts only when relevant to their strategy.
This indicator excels in trend confirmation and reversal detection. Traders can use it to identify developing structure, validate internal shifts, and anticipate breakout continuation or rejection. It is particularly useful for Smart Money Concept (SMC) traders, swing traders, and those looking to refine entries and exits based on price structure rather than lagging indicators.
Visual clarity, adaptable timeframe logic, and precise structural event detection make this tool a valuable addition to any price action trader’s toolkit.
Vietnamese Market Structure With CountersThis indicator is designed to track Market Structure with Swing-Low Breakdowns and Swing-High Breakups specifically tailored for the Vietnamese stock market, though it can be applied elsewhere too. By default, it uses a 10-period EMA to dynamically detect key turning points in price action and count significant breakdowns or breakups from previous swing levels.
As an open source, you can modify the source code to match your needs.
What it does:
Detects when price breaks below previous swing lows or above previous swing highs.
Plots swing levels for both highs and lows.
Displays labeled counters on the chart to show how many consecutive breakdowns or breakups have occurred.
Helps traders identify trend shifts and possible exhaustion in moves.
Why it's useful:
This tool is great for visually tracking market momentum and structure changes — especially in trending or volatile environments. It emphasizes structure over indicators, helping you understand price behavior in a simplified, intuitive way.
License:
This script is published under the Mozilla Public License 2.0. Feel free to use, modify, and contribute!
Created with care by @doqkhanh.
If you find it useful, consider leaving a comment or sharing it with others!
MSB BOS Market Structure [FTB]Track Market Structure Breaks (MSB) and Breaks of Structure (BOS) on your charts. This indicator does exactly that without clutter and with easy-to-spot.
🔑 Features:
MSB (Market Structure Break): Shows when price flips and breaks the previous high/low — possible start of a new trend.
BOS (Break of Structure): Highlights key structural breakouts in line with the existing trend.
✅ Pivot-Based Analysis (Body Focused)
Uses candle body-based pivot highs and lows to find clean market structure points (no wicks confusion here!).
Adjustable pivot strength — control how many candles you want on either side to define a swing.
✅ Clean Visual Markings
MSB and BOS lines with optional labels so you see exactly where breaks happen.
Customizable line style (Solid, Dashed, Dotted) to match your chart aesthetic.
Optional pivot markers to show minor swing highs/lows.
✅ Alerts Ready
Set alerts for any MSB or BOS, or filter to specific bullish/bearish breaks — never miss a key level again
💡 How to Use This Indicator:
Identify Trend Shifts: Use MSB to spot early trend reversals — when a previous structure breaks against the trend.
Catch Continuations: Watch for BOS to confirm trend continuation — great for riding the trend!
⚙️ Settings You Can Adjust:
Pivot Strength: How many candles to look back and forward for swing points (default: 3).
Show Pivots: Optional — highlight swing highs and lows for extra clarity.
ICT Market Structure and OTE ZoneThis indicator is based on the ICT (Inner Circle Trader) concepts, and it helps identify daily market structure and the optimal trade entry (OTE) zone based on Fibonacci retracement levels.
To read and interpret this indicator, follow these steps:
Daily High and Low: The red line represents the daily high, while the green line represents the daily low. These lines help you understand the market structure and the range within which the price has moved during the previous day.
OTE Zone: The gray area between two gray lines represents the optimal trade entry (OTE) zone. This zone is calculated using Fibonacci retracement levels (in this case, 61.8% and 78.6%) applied to the previous day's high and low. The OTE zone is an area where traders might expect a higher probability of a price reversal, following the ICT concepts.
To use this indicator for trading decisions, you should consider the following:
Identify the market structure and overall trend (uptrend, downtrend, or ranging).
Watch for price action to enter the OTE zone. When the price reaches the OTE zone, it may indicate a higher probability of a price reversal.
Combine the OTE zone with other confluences, such as support and resistance levels, candlestick patterns, or additional ICT concepts like order blocks and market maker profiles, to strengthen your trading decisions.
Always use proper risk management and stop-loss orders to protect your capital in case the market moves against your trade.
Keep in mind that the provided indicator is a simple example based on the ICT concepts and should not be considered financial advice. The ICT methodology is vast, and traders often combine multiple concepts to develop their trading strategies. The provided indicator should be treated as a starting point to explore and implement the ICT concepts in your trading strategy.
Simple Market StructureThis indicator is meant for education and experimental purposes only.
Many Market Structure Script out there isn't open-sourced and some could be complicated to understand to modify the code. Hence, I published this code to make life easier for beginner programmer like me to modify the code to fit their custom indicator.
As I am not a expert or pro in coding it might not be as accurate as other reputable author.
Any experts or pros that is willing to contribute this code in the comment section below would be appreciated, I will modify and update the script accordingly as part of my learning journey.
It is useful to a certain extend to detect Market Structure using Swing High/Low in all market condition.
Here are some points that I am looking to improve / fix:
To fix certain horizontal lines that does not paint up to the point where it breaks through.
To add in labels when a market structure is broken.
Allow alerts to be sent when market structure is broken (Probably be done in the last few updates after knowing it is stable and as accurate as possible)
Any suggested improvement, please do let me know in the comment section below and I will try my best to implement it into the script.
Simple ICT Market Structure by toodegreesThis Simple ICT Market Structure is based on the teachings of ICT, specifically in his episode 12 of the Public 2022 Mentorship.
The only omission here is the peculiar calculation of Intermediate Term points, for which I am not using the concept of repricing imbalances – this can be added later!
Feel free to use this tool, however it is quite simple and market structure is something we all know very well how to spot. In my opinion it is helpful to display the long term swing points to identify more mature pools of liquidity.
The reason for coding this tool is to help new coders understand PineScript (I have a video tutorial where I code this from start to finish), as well as fostering some algorithmic thinking in your trading of ICT Concepts and Algorithmic Delivery.
If you have any questions about the code, shoot me a message!
Hope you learn something and GLGT!
MarketStructureLibrary "MarketStructure"
This library contains functions for identifying Lows and Highs in a rule-based way, and deriving useful information from them.
f_simpleLowHigh()
This function finds Local Lows and Highs, but NOT in order. A Local High is any candle that has its Low taken out on close by a subsequent candle (and vice-versa for Local Lows).
The Local High does NOT have to be the candle with the highest High out of recent candles. It does NOT have to be a Williams High. It is not necessarily a swing high or a reversal or anything else.
It doesn't have to be "the" high, so don't be confused.
By the rules, Local Lows and Highs must alternate. In this function they do not, so I'm calling them Simple Lows and Highs.
Simple Highs and Lows, by the above definition, can be useful for entries and stops. Because I intend to use them for stops, I want them all, not just the ones that alternate in strict order.
@param - there are no parameters. The function uses the chart OHLC.
@returns boolean values for whether this bar confirms a Simple Low/High, and ints for the bar_index of that Low/High.
f_localLowHigh()
This function finds Local Lows and Highs, in order. A Local High is any candle that has its Low taken out on close by a subsequent candle (and vice-versa for Local Lows).
The Local High does NOT have to be the candle with the highest High out of recent candles. It does NOT have to be a Williams High. It is not necessarily a swing high or a reversal or anything else.
By the rules, Local Lows and Highs must alternate, and in this function they do.
@param - there are no parameters. The function uses the chart OHLC.
@returns boolean values for whether this bar confirms a Local Low/High, and ints for the bar_index of that Low/High.
f_enhancedSimpleLowHigh()
This function finds Local Lows and Highs, but NOT in order. A Local High is any candle that has its Low taken out on close by a subsequent candle (and vice-versa for Local Lows).
The Local High does NOT have to be the candle with the highest High out of recent candles. It does NOT have to be a Williams High. It is not necessarily a swing high or a reversal or anything else.
By the rules, Local Lows and Highs must alternate. In this function they do not, so I'm calling them Simple Lows and Highs.
Simple Highs and Lows, by the above definition, can be useful for entries and stops. Because I intend to use them for trailing stops, I want them all, not just the ones that alternate in strict order.
The difference between this function and f_simpleLowHigh() is that it also tracks the lowest/highest recent level. This level can be useful for trailing stops.
In effect, these are like more "normal" highs and lows that you would pick by eye, but confirmed faster in many cases than by waiting for the low/high of that particular candle to be taken out on close,
because they are instead confirmed by ANY subsequent candle having its low/high exceeded. Hence, I call these Enhanced Simple Lows/Highs.
The levels are taken from the extreme highs/lows, but the bar indexes are given for the candles that were actually used to confirm the Low/High.
This is by design, because it might be misleading to label the extreme, since we didn't use that candle to confirm the Low/High..
@param - there are no parameters. The function uses the chart OHLC.
@returns - boolean values for whether this bar confirms an Enhanced Simple Low/High
ints for the bar_index of that Low/High
floats for the values of the recent high/low levels
floats for the trailing high/low levels (for debug/post-processing)
bools for market structure bias
f_trueLowHigh()
This function finds True Lows and Highs.
A True High is the candle with the highest recent high, which then has its low taken out on close by a subsequent candle (and vice-versa for True Lows).
The difference between this and an Enhanced High is that confirmation requires not just any Simple High, but confirmation of the very candle that has the highest high.
Because of this, confirmation is often later, and multiple Simple Highs and Lows can develop within ranges formed by a single big candle without any of them being confirmed. This is by design.
A True High looks like the intuitive "real high" when you look at the chart. True Lows and Highs must alternate.
@param - there are no parameters. The function uses the chart OHLC.
@returns - boolean values for whether this bar confirms an Enhanced Simple Low/High
ints for the bar_index of that Low/High
floats for the values of the recent high/low levels
floats for the trailing high/low levels (for debug/post-processing)
bools for market structure bias
London Session & Market StructureFusion of session indicator with market structure ZigZag line. not my own creation just a fusion of 2 indicators which are publicly available on TV
Enhanced Market Structure StrategyATR-Based Risk Management:
Stop Loss: 2 ATR from entry (configurable)
Take Profit: 3 ATR from entry (configurable)
Dynamic Position Sizing: Based on ATR stop distance and max risk percentage
Advanced Signal Filters:
RSI Filter:
Long trades: RSI < 70 and > 40 (avoiding overbought)
Short trades: RSI > 30 and < 60 (avoiding oversold)
Volume Filter:
Requires volume > 1.2x the 20-period moving average
Ensures institutional participation
MACD Filter (Optional):
Long: MACD line above signal line and rising
Short: MACD line below signal line and falling
EMA Trend Filter:
50-period EMA for trend confirmation
Long trades require price above rising EMA
Short trades require price below falling EMA
Higher Timeframe Filter:
Uses 4H/Daily EMA for multi-timeframe confluence
Enhanced Entry Logic:
Regular Entries: IDM + BOS + ALL filters must pass
Sweep Entries: Failed breakouts with tighter stops (1.6 ATR)
High-Probability Focus: Only trades when multiple confirmations align
Visual Improvements:
Detailed Entry Labels: Show entry, stop, target, and risk percentage
SL/TP Lines: Visual representation of risk/reward
Filter Status: Bar coloring shows when all filters align
Comprehensive Statistics: Real-time performance metrics
Key Strategy Parameters:
pinescript// Recommended Settings for Different Markets:
// Forex (4H-Daily):
// - CHoCH Period: 50-75
// - ATR SL: 2.0, ATR TP: 3.0
// - All filters enabled
// Crypto (1H-4H):
// - CHoCH Period: 30-50
// - ATR SL: 2.5, ATR TP: 4.0
// - Volume filter especially important
// Indices (4H-Daily):
// - CHoCH Period: 50-100
// - ATR SL: 1.8, ATR TP: 2.7
// - EMA and MACD filters crucial
Expected Performance Improvements:
Win Rate: 55-70% (improved filtering)
Profit Factor: 2.0-3.5+ (better risk/reward with ATR)
Reduced Drawdown: Stricter filters reduce false signals
Consistent Risk: ATR-based stops adapt to volatility
This enhanced version provides much more robust signal filtering while maintaining the core market structure edge, resulting in higher-probability trades with consistent risk management.
Larry Williams's Market Structure
Here is a Pine script based on Larry Williams' market structure model.
Note: When processing real-time ticks, heavy calculations can cause script errors. To prevent this, please adjust the script's data range accordingly.
As I'm not an expert in Pine Script, there may be some imperfections. Your understanding is appreciated.
I have great admiration for the wisdom of Larry Williams.
May the trend be with you.
AMD Session Structure Levels# Market Structure & Manipulation Probability Indicator
## Overview
This advanced indicator is designed for traders who want a systematic approach to analyzing market structure, identifying manipulation, and assessing probability-based trade setups. It incorporates four core components:
### 1. Session Price Action Analysis
- Tracks **OHLC (Open, High, Low, Close)** within defined sessions.
- Implements a **dual tracking system**:
- **Official session levels** (fixed from the session open to close).
- **Real-time max/min tracking** to differentiate between temporary spikes and real price acceptance.
### 2. Market Manipulation Detection
- Identifies **manipulative price action** using the relationship between the open and close:
- If **price closes below open** → assumes **upward manipulation**, followed by **downward distribution**.
- If **price closes above open** → assumes **downward manipulation**, followed by **upward distribution**.
- Normalized using **ATR**, ensuring adaptability across different volatility conditions.
### 3. Probability Engine
- Tracks **historical wick ratios** to assess trend vs. reversal conditions.
- Calculates **conditional probabilities** for price moves.
- Uses a **special threshold system (0.45 and 0.03)** for reversal signals.
- Provides **real-time probability updates** to enhance trade decision-making.
### 4. Market Condition Classification
- Classifies market conditions using a **wick-to-body ratio**:
```pine
wick_to_body_ratio = open > close ? upper_wick / (high - low) : lower_wick / (high - low)
```
- **Low ratio (<0.25)** → Likely a **trend day**.
- **High ratio (>0.25)** → Likely a **range day**.
---
## Why This Indicator Stands Out
### ✅ Smarter Level Detection
- Uses **ATR-based dynamic levels** instead of static support/resistance.
- Differentiates **manipulation from distribution** for better decision-making.
- Updates probabilities **in real-time**.
### ✅ Memory-Efficient Design
- Implements **circular buffers** to maintain efficiency:
```pine
var float manipUp = array.new_float(lookbackPeriod, 0.0)
var float manipDown = array.new_float(lookbackPeriod, 0.0)
```
- Ensures **constant memory usage**, even over extended trading sessions.
### ✅ Advanced Probability Calculation
- Utilizes **conditional probabilities** instead of simple averages.
- Incorporates **market context** through wick analysis.
- Provides **actionable signals** via a probability table.
---
## Trading Strategy Guide
### **Best Entry Setups**
✅ Wait for **price to approach manipulation levels**.
✅ Confirm using the **probability table**.
✅ Check the **wick ratio for context**.
✅ Enter when **conditional probability aligns**.
### **Smart Exit Management**
✅ Use **distribution levels** as **profit targets**.
✅ Scale out **when probabilities shift**.
✅ Monitor **wick percentiles** for confirmation.
### **Risk Management**
✅ Size positions based on **probability readings**.
✅ Place stops at **manipulation levels**.
✅ Adjust position size based on **trend vs. range classification**.
---
## Configuration Tips
### **Session Settings**
```pine
sessionTime = input.session("0830-1500", "Session Hours")
weekDays = input.string("23456", "Active Days")
```
- Match these to your **primary trading session**.
- Adjust for different **market opens** if needed.
### **Analysis Parameters**
```pine
lookbackPeriod = input.int(50, "Lookback Period")
low_threshold = input.float(0.25, "Trend/Range Threshold")
```
- **50 periods** is a good starting point but can be optimized per instrument.
- The **0.25 threshold** is ideal for most markets but may need adjustments.
---
## Market Structure Breakdown
### **Trend/Continuation Days**
- **Characteristics:**
✅ Small **opposing wicks** (minimal counter-pressure).
✅ Clean, **directional price movement**.
- **Bullish Trend Day Example:**
✅ Small **lower wicks** (minimal downward pressure).
✅ Strong **closes near the highs** → **Buyers in control**.
- **Bearish Trend Day Example:**
✅ Small **upper wicks** (minimal upward pressure).
✅ Strong **closes near the lows** → **Sellers in control**.
### **Reversal Days**
- **Characteristics:**
✅ **Large opposing wicks** → Failed momentum in the initial direction.
- **Bullish Reversal Example:**
✅ **Large upper wick early**.
✅ **Strong close from the lows** → **Sellers failed to maintain control**.
- **Bearish Reversal Example:**
✅ **Large lower wick early**.
✅ **Weak close from the highs** → **Buyers failed to maintain control**.
---
## Summary
This indicator systematically quantifies market structure by measuring **manipulation, distribution, and probability-driven trade setups**. Unlike traditional indicators, it adapts dynamically using **ATR, historical probabilities, and real-time tracking** to offer a structured, data-driven approach to trading.
🚀 **Use this tool to enhance your decision-making and gain an objective edge in the market!**
Market Structure MA Based BOS [liwei666]
🎲 Overview
🎯 This BOS(Break Of Structure) indicator build based on different MA such as EMA/RMA/HMA, it's usually earlier than pivothigh() method
when trend beginning, customer your BOS with 2 parameters now.
🎲 Indicator design logic
🎯 The logic is simple and code looks complex, I‘ll explain core logic but not code details.
1. use close-in EMA's highest/lowest value mark as SWING High/Low when EMA crossover/under,
not use func ta.pivothigh()/ta.pivotlow()
2. once price reaching EMA’s SWING High/Low, draw a line link High/Low to current bar, labled as BOS
3. find regular pattern benefit your trading.
🎲 Settings
🎯 there are 4 input properties in script, 2 properties are meaningful in 'GRP1' another 2 are display config in 'GRP2'.
GRP1
MA_Type: MA type you can choose(EMA/RMA/SMA/HMA), default is 'HMA'.
short_ma_len: MA length of your current timeframe on chart
GRP2
show_short_zz: Show short_ma Zigzag
show_ma_cross_signal: Show ma_cross_signal
🎲 Usage
🎯 BOS signal usually worked fine in high volatility market, low volatility is meaningless.
🎯 We can see that it performs well in trending market of different symbols, and BOS is an opportunity to add positions
BINANCE:BTCUSDTPERP
BINANCE:ETHUSDTPERP
🎯 MA Based signal is earlier than pivothigh()/pivotlow() method when trend beginning. it means higher profit-loss rate.
🎯 any questions or suggestion please comment below.
Additionally, I plan to publish 20 profitable strategies in 2023; indicatior not one of them,
let‘s witness it together!
Hope this indicator will be useful for you :)
enjoy! 🚀🚀🚀
Market Structure - Multi-TimeframePivot based channels for 8 individual time-frames. This can be used to identify the support and resistance level for different time-frames. Recommended is 1min as timeframe for the candles sticks. The direction for every pivot-channel is marked in green for bullish and red vor bearish. There exists alerts for Choch and BoS for every timeframe.